package com.mengxingyun.shortlink.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mengxingyun.shortlink.project.dao.entity.ShortLinkDO;
import com.mengxingyun.shortlink.project.dto.req.*;
import com.mengxingyun.shortlink.project.dto.resp.ShortLinkPageRespDTO;

/**
 * @Description: 回收站管理服务层接口类
 * @Author: heshen-mengxingyun
 * @Date: 2024/7/17 23:23
 */
public interface RecycleBinService extends IService<ShortLinkDO> {
    /**
     * 加入回收站
     * @param requestParam 加入回收站请求参数
     */
    void saveRecycleBin(RecycleBinSaveReqDTO requestParam);

    /**
     *
     * @param requestParam 分页短链接请求参数
     * @return  短链接分页返回结果
     */
    IPage<ShortLinkPageRespDTO> pageShortLink(ShortLinkRecycleBinPageReqDTO requestParam);

    /**
     * 恢复短链接
     * @param requestParam  恢复短链接的对象请求参数
     */
    void recoverRecycleBin(RecycleBinRecoverReqDTO requestParam);

    /**
     * 从回收站移除短链接的服务层接口
     * @param requestParam
     */
    void removeRecycleBin(RecycleBinRemoveReqDTO requestParam);
}
